This invention relates to a multi-processor system, and more particularly, to a synchronous apparatus for processors suitable for use in establishing synchronization of processors with one another.
A conventional synchronous processing in a multi-processor system basically refers to synchronization among tasks (putting in order processing of the tasks), wherein the tasks are started and processed in a task driven or data driven manner. Implementation of such a configuration on a general-purpose multi-processor system employs a method of providing a task termination flag on a shared memory with which each of tasks examines whether or not a necessary preceding task processing has been completed and progresses a task processing in data flow manner, and a token control method. Such a conventional synchronous processing is described in "Multi-microprocessor System", Keigaku Shuppan, November, 1984, pp. 117 to 119. Also, a conventional multi-processor system is disclosed in U.S. Pat. No. 4,493,053.
The above-mentioned prior art related to a general-purpose multi-processor system, since a processing is mainly executed by software and many check items are included, implies large synchronous processing overhead caused by synchronization among tasks (keeping the processing order of tasks correctly without contradiction) or synchronization among processors. Therefore, the tasks cannot be sufficiently fractionized (fine task division). The prior art also implies a problem in that the task processing order for a parallel processing is excessively restricted because the hardware for communications among processors is restricted in general, whereby advantages of the parallel processing cannot be sufficiently obtained, so that it is difficult to achieve a highly efficient parallel processing.
Further, in a conventional multi-processor system which is provided with a limited number of processors for processing multiple tasks, when one of the processors has completed a task processing and is going to progress to the next task processing, a synchronous processing is required for confirming that other necessary task processings have been completed and necessary results have been provided. In this event, the one processor is occupied by the synchronization check processing with software method, so that an empty processing time is produced where the one processor is substantially prevented from executing effective processing until the synchronization check processing has been completed.